

package com.hazelcast.security.permission;

public class ListPermission extends InstancePermission {

    private static final int ADD = 4;
    private static final int READ = 8;
    private static final int REMOVE = 16;
    private static final int LISTEN = 32;
    private static final int ALL = ADD | REMOVE | READ | CREATE | DESTROY | LISTEN;

    public ListPermission(String name, String... actions) {
        super(name, actions);
    }

    @Override
    protected int initMask(String[] actions) {
        int mask = NONE;
        for (String action : actions) {
            if (ActionConstants.ACTION_ALL.equals(action)) {
                return ALL;
            }

            if (ActionConstants.ACTION_CREATE.equals(action)) {
                mask |= CREATE;
            } else
                if (ActionConstants.ACTION_ADD.equals(action)) {
                    mask |= ADD;
                } else
                    if (ActionConstants.ACTION_REMOVE.equals(action)) {
                        mask |= REMOVE;
                    } else
                        if (ActionConstants.ACTION_READ.equals(action)) {
                            mask |= READ;
                        } else
                            if (ActionConstants.ACTION_DESTROY.equals(action)) {
                                mask |= DESTROY;
                            } else
                                if (ActionConstants.ACTION_LISTEN.equals(action)) {
                                    mask |= LISTEN;
                                }
        }
        return mask;
    }
}
